package cn.jobstart.search;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import cn.jobstart.pubInter.BaseSearch;
import cn.jobstart.model.AdminJobCandidate;
import java.util.Date;
import java.util.List;
import java.math.BigDecimal;
import lombok.Data;
/**
*   @author sunke
*   @Date 2023-10-05 00:40:36
*   @description AdminJobCandidateSearch      职位候选人
*/


@Data
@ApiModel("职位候选人AdminJobCandidateSearch")
public abstract class AdminJobCandidateSearch<Sub extends AdminJobCandidateSearch<Sub>> extends BaseSearch {
    @ApiModelProperty(value = "主键")
    private List idIn;
    @ApiModelProperty(value = "大于排序")
    private Integer sortNumGreater;
    @ApiModelProperty(value = "小于排序")
    private Integer sortNumLess;
    @ApiModelProperty(value = "是否显示 1:是:Y,0:否:N")
    private List showFlagIn;
    @ApiModelProperty(value = "是否删除 1:删除:Y,0:正常:N")
    private Integer delFlagEq=0;
    @ApiModelProperty(value = "版本")
    private Integer versionEq;
    @ApiModelProperty(value = "职位ID")
    private String adminJobIdEq;
    @ApiModelProperty(value = "简历ID")
    private String resumeIdEq;
    @ApiModelProperty(value = "职位名称")
    private String jobTitleLike;
    @ApiModelProperty(value = "确认有意向 0:未知:un,1:无:N,2:有:Y")
    private List intentionFlagIn;
    @ApiModelProperty(value = "添加员工ID")
    private String adminIdEq;
    @ApiModelProperty(value = "添加员工姓名")
    private String adminTruenameLike;

    public AdminJobCandidateSearch() {
        setDelFlagEq(0);
    }



    /**
    * 返回子类Sub
    * @return
    */
    public abstract Sub getSubThis();

    @Override
    public String createTimeFiled() {
        return AdminJobCandidate.CREATE_TIME;
    }
    @Override
    public String updateTimeFiled() {
        return AdminJobCandidate.UPDATE_TIME;
    }
    @Override
    public String  setDefaultField() {
        return AdminJobCandidate.CREATE_TIME;
    }
    @Override
    public String pkField() {
        return AdminJobCandidate.ID;
    }

    @Override
    public String  toString() {
        return "AdminJobCandidateSearch{}"+super.toString();
    }
    public Sub setIdIn(List idIn){
        this.idIn = idIn;
        setInField(AdminJobCandidate.ID, idIn);
        return getSubThis();
    }
    public Sub setSortNumGreater(Integer sortNumGreater){
        this.sortNumGreater = sortNumGreater;
        setGreaterField(AdminJobCandidate.SORT_NUM, sortNumGreater);
        return getSubThis();
    }
    public Sub setSortNumLess(Integer sortNumLess){
        this.sortNumLess = sortNumLess;
        setLessField(AdminJobCandidate.SORT_NUM, sortNumLess);
        return getSubThis();
    }
    public Sub setShowFlagIn(List showFlagIn){
        this.showFlagIn = showFlagIn;
        setInField(AdminJobCandidate.SHOW_FLAG, showFlagIn);
        return getSubThis();
    }
    public Sub setDelFlagEq(Integer delFlagEq){
        this.delFlagEq = delFlagEq;
        setEqualField(AdminJobCandidate.DEL_FLAG, delFlagEq);
        return getSubThis();
    }
    public Sub setVersionEq(Integer versionEq){
        this.versionEq = versionEq;
        setEqualField(AdminJobCandidate.VERSION, versionEq);
        return getSubThis();
    }
    public Sub setAdminJobIdEq(String adminJobIdEq){
        this.adminJobIdEq = adminJobIdEq;
        setEqualField(AdminJobCandidate.ADMIN_JOB_ID, adminJobIdEq);
        return getSubThis();
    }
    public Sub setResumeIdEq(String resumeIdEq){
        this.resumeIdEq = resumeIdEq;
        setEqualField(AdminJobCandidate.RESUME_ID, resumeIdEq);
        return getSubThis();
    }
    public Sub setJobTitleLike(String jobTitleLike){
        this.jobTitleLike = jobTitleLike;
        setLikeField(AdminJobCandidate.JOB_TITLE, jobTitleLike);
        return getSubThis();
    }
    public Sub setIntentionFlagIn(List intentionFlagIn){
        this.intentionFlagIn = intentionFlagIn;
        setInField(AdminJobCandidate.INTENTION_FLAG, intentionFlagIn);
        return getSubThis();
    }
    public Sub setAdminIdEq(String adminIdEq){
        this.adminIdEq = adminIdEq;
        setEqualField(AdminJobCandidate.ADMIN_ID, adminIdEq);
        return getSubThis();
    }
    public Sub setAdminTruenameLike(String adminTruenameLike){
        this.adminTruenameLike = adminTruenameLike;
        setLikeField(AdminJobCandidate.ADMIN_TRUENAME, adminTruenameLike);
        return getSubThis();
    }
}